package com.ymttest.business.database;

import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.ymt.core.tool.Logger;
import com.ymttest.database.model.YmtActivity;
import com.ymttest.database.model.YmtProducts;
import com.ymttest.database.sqlwapper.YmtActivityWapper;
import com.ymttest.database.sqlwapper.YmtProductsInActivityWapper;
import com.ymttest.database.sqlwapper.YmtProductsSubsidyWapper;
import com.ymttest.database.sqlwapper.YmtProductsWapper;

/************************************************************************************
 * 活动相关sql
 * 
 * @File name : ActivityInfo.java
 * @Author : zhouyi
 * @Date : 2015年5月19日
 * @Copyright : 洋码头
 ************************************************************************************/
public class ActivityInfo {
	static YmtActivityWapper yaw = new YmtActivityWapper();
	static YmtProductsInActivityWapper ypiaw = new YmtProductsInActivityWapper();
	static YmtProductsSubsidyWapper ypsw = new YmtProductsSubsidyWapper();
	static YmtProductsWapper ypw = new YmtProductsWapper();

	/**
	 * 自动用isellerid 用户创建一个活动商品
	 * 
	 * @param isellerid
	 *            商户id
	 * @return Map
	 */
	public static void createActivity(int isellerid) {
		Map rem = new HashMap();
		try {
			// 新建一个活动
			rem.put("isellerid", isellerid);
			yaw.insertOneActivity(isellerid);
			// 获取活动id
			YmtActivity active = yaw.getLastOneRecord(isellerid);
			Logger.debug("活动id：" + active.getIactivityid());
			int iactivityid = active.getIactivityid();
			rem.put("iactivityid", iactivityid);
			YmtProducts ymtp = ypw.selectByiUserId(String.valueOf(isellerid));
			// 获取 sproductid
			String sproductid = ymtp.getSproductid();
			Logger.debug("Sproductid：" + sproductid);
			// update 商品数量 100
			Calendar calendar = Calendar.getInstance();
			calendar.add(Calendar.DAY_OF_MONTH, 1);
			int up = ypw.updateByPK(ymtp.getSproductid(), 100, calendar.getTime());
			Logger.debug("更新时间条数：" + up);
			rem.put("sproductid", sproductid);
			// 新建一个商品报名表记录
			ypiaw.insertOneProductsInActivity(iactivityid, sproductid, 1, isellerid);
			// 获取商品活动id
			Integer paid = ypiaw.selectByiActivityId(iactivityid).getIproductinactivityid();
			Logger.debug("paid：" + paid);
			rem.put("productinactivityid", paid);
			// 新建一个新人价商品
			ypsw.insertOneProductsSubsidy(iactivityid, sproductid, paid, isellerid);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		// return rem;
	}

	/**
	 * 自动用isellerid 用户创建一个活动商品
	 * 
	 * @param isellerid
	 *            商户id
	 * @return
	 * @return Map
	 */
	public static Map createActivityBySproductid(int isellerid, String Sproductid) {
		Map rem = new HashMap();
		try {
			// 新建一个活动
			rem.put("isellerid", isellerid);
			yaw.insertOneActivity(isellerid);
			// 获取活动id
			int iactivityid = yaw.getLastOneRecord(isellerid).getIactivityid();
			rem.put("iactivityid", iactivityid);

			rem.put("sproductid", Sproductid);
			// 新建一个商品报名表记录
			ypiaw.insertOneProductsInActivity(iactivityid, Sproductid, 1, isellerid);
			// 获取商品活动id
			Integer paid = ypiaw.selectByiActivityId(iactivityid).getIproductinactivityid();
			rem.put("productinactivityid", paid);
			// 新建一个新人价商品
			ypsw.insertOneProductsSubsidy(iactivityid, Sproductid, paid, isellerid);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return rem;
	}

	/**
	 * 获取活动产品信息，如果没有获取到，创建一个sid 为 3383的 商户的商品活动
	 * 
	 * @see YmtProductsInActivityWapper#selectNewActiveProductInfo()
	 * @return Map
	 */
	public static List<Map> getActiveProductInfoList() {
		List<Map> list = null;
		try {
			list = ypiaw.selectNewActiveProductInfo();
			if (list.size() <= 0) {
				createActivity(3383);
				list = ypiaw.selectNewActiveProductInfo();
			}

		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 获取sellerid 为 sid 活动产品信息，如果没有获取到，创建一个
	 * 
	 * @see YmtProductsInActivityWapper#selectNewActiveProductInfo()
	 * @return Map
	 */
	public static List<Map> getActiveProductInfoList(int sid) {
		List<Map> list = null;
		try {
			list = ypiaw.selectProductInActivityInfoBySellerId(sid);
			if (list.size() <= 0) {
				createActivity(sid);
				list = ypiaw.selectProductInActivityInfoBySellerId(sid);
			}

		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return list;
	}


}
